home *** CD-ROM | disk | FTP | other *** search
- Path: elna.ethz.ch!usenet
- From: Christian Hagmann <chagmann>
- Newsgroups: comp.lang.c
- Subject: Indexed addressing mode on MIPS R8000
- Date: 19 Jan 1996 16:36:49 GMT
- Organization: Swiss Federal Institute of Technology (ETHZ)
- Message-ID: <4dohb1$ccr@elna.ethz.ch>
- NNTP-Posting-Host: tardis-a14.ethz.ch
- Mime-Version: 1.0
- Content-Type: text/plain; charset=us-ascii
- Content-Transfer-Encoding: 7bit
- X-Mailer: Mozilla 1.1N (X11; I; SunOS 5.4 sun4c)
- X-URL: news:comp.lang.c
-
- I'm optimizing a program for a SGI-Workstation with IRIX 6.1, that is written
- in C. The Compiler, I use, is the MIPSpro Compiler.
- My problem is the following:
-
- I use some Base-pointers and some Offset-pointers in C. I think, the Compiler
- should translate an expression like 'a0=*(b0+off0);' as an indexed addressing
- mode 'LDXC1 $fx,$y,$z'. Sometimes it is translated in this way, but sometimes
- it is translated in the way, that b0 and off0 become added (Integer-Operation)
- and loaded in the Offset addressing mode 'LDC1 $fx,0($q)' with $q=$y+$z. This
- disturbs the flow of the programm and makes it slow.
- So, my question is:
-
- Are there any restrictions in register-register indexed addressing Mode on the
- MIPS R8000 or does the IRIX restrict this addressing Mode?
-
- If anyone knows a solution for this problem, then send me an e-mail.
-
- Thanks
-
- Christian
-
-